Gated Recurrent Unit (GRU) 是一种改进的循环神经网络（RNN），它引入了更新门和重置门两个概念，这使得我们能更好地捕获时间序列数据中的长期依赖关系。以下是对GRU的主要公式进行推导：

1. **更新门：**
   更新门决定了当前隐藏状态有多少信息会保留。使用Sigmoid函数进行归一化，其输出值在0到1之间。
   \[z_{t}=\sigma\left(W_{xz} x_{t}+W_{hz} h_{t-1}+b_{z}\right)\]
   其中，\(W_{xz}\)和\(W_{hz}\)分别为更新门对当前输入和过去隐藏状态的权重矩阵，\(b_{z}\)为偏置项。

2. **重置门：**
   重置门用于控制有多少过去的隐藏状态会被遗忘。同样使用Sigmoid函数进行归一化。
   \[r_{t}=\sigma\left(W_{xr} x_{t}+W_{hr} h_{t-1}+b_{r}\right)\]

3. **候选隐藏状态：**
   候选隐藏状态是根据当前输入和通过重置门调整后的过去隐藏状态计算出来的。这部分会参与下一步的隐藏状态的更新。
   \[\tilde{h}_{t}=tanh\left(W_{xh} x_{t}+W_{hh} (r_{t} \circ h_{t-1})+b_{h}\right)\]
   其中，\(\circ\)表示逐元素乘法。

4. **隐藏状态：**
   最后，新的隐藏状态是过去的隐藏状态和候选隐藏状态的线性插值，其中的权重由更新门确定。
   \[h_{t}=z_{t} \circ h_{t-1} + (1-z_{t}) \circ \tilde{h}_{t}\]

在上述公式中，所有的权重矩阵\(W\)和偏置向量\(b\)都是模型的参数，需要通过训练数据进行学习。这些公式共同实现了GRU的前向传播过程，而反向传播则通过优化算法（如随机梯度下降）来更新这些参数，以最小化预测结果和真实结果之间的差距。